$(function(){
	/**
	 * 1.得到所有的错误信息，循环遍历之。调用一个方法来确定是否显示错误信息。
	 */
	$(".errorClass").each(function(){
		showError($(this));//遍历每一个元素，使用每个元素来调用showError方法
	});
	
	/**
	 * 2.切换注册按钮的图片
	 */
	$("#submitBtn").hover(
		function(){
			$("#submitBtn").attr("src","/goods/images/regist2.jpg");
		},
		function(){
			$("#submitBtn").attr("src","/goods/images/regist1.jpg");
		}
	);
	/**
	 * 3.输入框得到焦点，隐藏label
	 */
	$(".inputClass").focus(function(){
		var labelId=$(this).attr("id")+"Error";
		$("#"+labelId).text("");
		showError($("#"+labelId));
	});
	/**
	 * 4.输入框失去焦点进行校验
	 */
	$(".inputClass").blur(function(){
		var id=$(this).attr("id");//获取当前输入框的ID
		var funName="validate"+id.substring(0,1).toUpperCase()+id.substring(1)+"()";//得到对应的方法名
		eval(funName);//执行函数调用。注意：eval(Stirng)作用：计算某个字符串，并执行其中的的 JavaScript 代码。只能向其传递字符串，不可传递对象
	});
	/**
	 * 5.表单提交时进行校验
	 */
	$("#registForm").submit(function(){
		var bool=true;
		if(!validateLoginname()){
			bool=false;
		}
		if(!validateLoginpass()){
			bool=false;
		}
		if(!validateReloginpass()){
			bool=false;
		}
		if(!validateEmail()){
			bool=false;
		}
		if(!validateVerifyCode()){
			bool=false;
		}
		return bool;
	});
});

	/**
	 * 登录名校验方法
	 */
	function validateLoginname(){
		var id="loginname";
		var value=$("#"+id).val();
		/**
		 * 非空校验
		 */
		if(!value){
			/**
			 * 获取对应的label
			 * 添加错误信息
			 * 显示label
			 */
			$("#"+id+"Error").text("用户名不能为空！");
			showError($("#"+id+"Error"));
			return false;
		}
		/**
		 * 长度校验
		 */
		if(value.length<3||value.length>20){
			$("#"+id+"Error").text("用户名长度必须在3到20字符之间！");
			showError($("#"+id+"Error"));
			return false;
		}
		/**
		 * 是否注册校验
		 */
		$.ajax({
			url:"/goods/UserServlet",
			data:{method:"ajaxValidateLoginname",loginname:value},
			type:"POST",
			dataType:"json",
			async:false,
			cache:false,
			success:function(result){
				if(!result){
					$("#"+id+"Error").text("用户名已经被注册");
					showError($("#"+id+"Error"));
					return false;
				}
			}
		});
		return true;
	}
	
	/**
	 * 登录密码校验方法
	 */
	function validateLoginpass(){
		var id="loginpass";
		var value=$("#"+id).val();
		/**
		 * 非空校验
		 */
		if(!value){
			/**
			 * 获取对应的label
			 * 添加错误信息
			 * 显示label
			 */
			$("#"+id+"Error").text("密码不能为空！");
			showError($("#"+id+"Error"));
			return false;
		}
		/**
		 * 长度校验
		 */
		if(value.length<3||value.length>20){
			$("#"+id+"Error").text("密码长度必须在3到20字符之间！");
			showError($("#"+id+"Error"));
			return false;
		}
		return true;
		
	}
	/**
	 * 确认密码校验方法
	 */
	function validateReloginpass(){
		var id="reloginpass";
		var value=$("#"+id).val();
		/**
		 * 非空校验
		 */
		if(!value){
			/**
			 * 获取对应的label
			 * 添加错误信息
			 * 显示label
			 */
			$("#"+id+"Error").text("确认密码不能为空！");
			showError($("#"+id+"Error"));
			return false;
		}
		/**
		 * 两次输入是否一致校验
		 */
		if(value!=$("#loginpass").val()){
			$("#"+id+"Error").text("两次输入不一致！");
			showError($("#"+id+"Error"));
			return false;
		}
		return true;
	}
	/**
	 * email校验方法
	 */
	function validateEmail(){
		var id="email";
		var value=$("#"+id).val();
		/**
		 * 非空校验
		 */
		if(!value){
			/**
			 * 获取对应的label
			 * 添加错误信息
			 * 显示label
			 */
			$("#"+id+"Error").text("Email不能为空！");
			showError($("#"+id+"Error"));
			return false;
		}
		/**
		 * 邮箱格式校验
		 */
		if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(value)){
			$("#"+id+"Error").text("邮箱格式不正确！");
			showError($("#"+id+"Error"));
			return false;
		}
		/**
		 * 是否注册校验
		 */
		$.ajax({
			url:"/goods/UserServlet",
			data:{method:"ajaxValidateEmail",email:value},
			type:"POST",
			dataType:"json",
			async:false,
			cache:false,
			success:function(result){
				if(!result){
					$("#"+id+"Error").text("该邮箱已经被注册");
					showError($("#"+id+"Error"));
					return false;
				}
			}
		});
		return true;
	}
	/**
	 * 验证码校验方法
	 */
	function validateVerifyCode(){
		var id="verifyCode";
		var value=$("#"+id).val();
		/**
		 * 非空校验
		 */
		if(!value){
			/**
			 * 获取对应的label
			 * 添加错误信息
			 * 显示label
			 */
			$("#"+id+"Error").text("验证码不能为空！");
			showError($("#"+id+"Error"));
			return false;
		}
		/**
		 * 长度校验
		 */
		if(value.length!=4){
			$("#"+id+"Error").text("错误的验证码！");
			showError($("#"+id+"Error"));
			return false;
		}
		/**
		 * 验证码是否正确
		 */
		$.ajax({
			url:"/goods/UserServlet",
			data:{method:"ajaxValidateVerifyCode",verifyCode:value},
			type:"POST",
			dataType:"json",
			async:false,
			cache:false,
			success:function(result){
				if(!result){
					$("#"+id+"Error").text("验证码错误！");
					showError($("#"+id+"Error"));
					return false;
				}
			}
		});
		return true;
	}
	/**
	 * 判断当前元素是否存在内容，如果存在显示
	 */
	function showError(ele){
		var text=ele.text();
		if(!text){
			ele.css("display","none");
		}else{
			ele.css("display","");
		}
	}

	/**
	 * 换一张验证码
	 */
	function _hyz(){
		/**
		 * 1.获取<img>元素
		 * 2.重新设置它的src
		 * 3.使用毫秒数来添加参数：因为某些浏览器会使用缓存中的图片代替新请求的图片
		 */
		$("#imgVerifyCode").attr("src","/goods/VerifyCodeServlet?a="+new Date().getTime());
	}
